﻿using System;

namespace Com.PhilChuang.Utils
{
	public interface IServiceLocator
	{
		void AddMapping (Type lookupAndImplType);
		void AddMapping (Type lookupAndImplType, bool cacheImpl);
		void AddMapping (Type lookupType, Type implType);
		void AddMapping (Type lookupType, Type implType, bool cacheImpl);

		T GetImpl<T> ();
		void CacheImpl<T> (T impl);
	}
}
